import pandas as pd  #导入pandas库
#导入pyecharts库中的options模块
from pyecharts import options as opts
#导入pyecharts库中charts模块的Calendar类
from pyecharts.charts import Calendar
#导入pyecharts库中globals模块的ThemeType全局变量
from pyecharts.globals import ThemeType
#读取数据
df=pd.read_excel('某地区2023年上半年空气质量指数.xlsx')
#生成日期和AQI组成的列表，元素格式为[日期，AQI]
data=df[['日期','空气质量指数（AQI）']].values.tolist()
#创建Calender类对象，并设置初始配置项，包括图表主题和网页标题
calendar=Calendar(init_opts=opts.InitOpts(
    theme=ThemeType.ESSOS,page_title='日历图'))
#添加数据，并设置日历坐标系组件配置项中的日历坐标范围
calendar.add(series_name='',yaxis_data=data,
             calendar_opts=opts.CalendarOpts(
                 range_=['2023-01-01','2023-06-30'])
             )
#设置全局配置项
calendar.set_global_opts(
    #设置标题配置项，包括图表标题及其位置
    title_opts=opts.TitleOpts(
        title='某地区2023年上半年空气质量指数日历图',
        pos_left='center'),
    #设置图例配置项，不显示图例
    legend_opts=opts.LegendOpts(is_show=False),
    #设置视觉映射配置项
    visualmap_opts=opts.VisualMapOpts(
        orient='horizontal',        #映射组件的绘制方向为水平
        is_piecewise=True,          #映射组件分段显示
        pos_top='45%',              #映射组件离画布顶部的距离
        pos_left='center',          #映射组件离画布左侧的距离
        pieces=[        #每段自定义的数据范围、文本标签及颜色
            {'min':0,'max':50,'label':'优','color':'green'},
            {'min':51,'max':100,'label':'良','color':'yellow'},
            {'min':101,'max':150,'label':'轻度污染','color':'orange'},
            {'min':151,'max':200,'label':'中度污染','color':'red'},
            {'min':201,'max':300,'label':'重度污染','color':'purple'},
            {'min':301,'label':'严重污染','color':'brown'},
        ]
    )
)
calendar.render('例7-3.html')        #渲染图表